package com.uflower.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.uflower.common.exception.WareReduceExcption;
import com.uflower.common.to.WareSkuReduceTo;
import com.uflower.common.to.mq.OrderEntityTo;
import com.uflower.common.to.mq.StockLockedTo;
import com.uflower.common.utils.PageUtils;
import com.uflower.product.entity.SkuInfoEntity;
import com.uflower.product.to.FareTo;
import com.uflower.product.to.SkuHasStockTo;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * sku信息
 *
 * @author bridge
 * @email bridgezrq@163.com
 * @date 2022-01-15 14:52:35
 */
public interface SkuInfoService extends IService<SkuInfoEntity> {

    PageUtils queryPage(Map<String, Object> params);

    void saveSkuInfo(SkuInfoEntity skuInfoEntity);

    PageUtils queryPageByCondition(Map<String, Object> params);
    BigDecimal getPriceBySkuId(Long skuId);

    List<SkuHasStockTo> getSkusHasStock(List<Long> skuIds);

    FareTo getFare(Long addrId);

     void orderReduceStock(WareSkuReduceTo reduceTo) throws WareReduceExcption;

    void unlockStock(StockLockedTo to);

    List<SkuInfoEntity> listBySpuId(Long spuId);
}

